Clickhouse系列之连接工具连接、数据类型和数据库

您所在的位置:网站首页 kettle连接clickhouse 端口一直换 Clickhouse系列之连接工具连接、数据类型和数据库

Clickhouse系列之连接工具连接、数据类型和数据库

2024-05-28 22:57| 来源: 网络整理| 查看: 265

基本操作 一、使用连接工具连接二、数据类型1、数字类型IntFloatDecimal 2、字符串类型StringFixedStringUUID 3、时间类型DateTimeDateTime64Date 4、复合类型ArrayEnum 5、特殊类型Nullable 三、数据库

一、使用连接工具连接

上一篇介绍了clickhouse的命令行登录,今天来介绍一下使用连接工具是如何登录的。 首先下载dbeaver连接工具,然后直接打开软件,如下图操作。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 如果发现8123不通,先排查防火墙是否关闭或者是否已添加8123端口,如果不是防火墙的问题,那么要查看/etc/clickhouse-server/config.xml文件里的标签的值是否为0.0.0.0,如果不是则要修改为0.0.0.0,然后重启clickhosue服务:systemctl restart clickhouse-server。如果上述两个都正常是能够正常连接的,正常的端口如下图: 在这里插入图片描述

二、数据类型 1、数字类型 Int

在这里插入图片描述

Float

在这里插入图片描述

Decimal

如果要求更高精度的数值运算,则需要使用定点数。ClickHouse提供了Decimal32、Decimal64和Decimal128三种精度的定点数。可以通过两种形式声明定点:简写方式有Decimal32(S)、Decimal64(S)、Decimal128(S)三种,原生方式为Decimal(P,S),其中: ·P代表精度,决定总位数(整数部分+小数部分),取值范围是1~38; ·S代表规模,决定小数位数,取值范围是0~P。

2、字符串类型

字符串类型可以细分为String、FixedString和UUID三类。

String

字符串由String定义,长度不限。因此在使用String的时候无须声明大小。它完全代替了传统意义上数据库的Varchar、Text、Clob和Blob等字符类型。

FixedString

FixedString类型和传统意义上的Char类型有些类似,对于一些字符有明确长度的场合,可以使用固定长度的字符串。定长字符串通过FixedString(N)声明,其中N表示字符串长度。

UUID

UUID是一种数据库常见的主键类型,在ClickHouse中直接把它作为一种数据类型。UUID共有32位,它的格式为8-4-4-4-12。如果一个UUID类型的字段在写入数据时没有被赋值,则会依照格式使用0填充,例如: 00000000-0000-0000-0000-000000000000

3、时间类型

时间类型分为DateTime、DateTime64和Date三类。ClickHouse目前没有时间戳类型。时间类型最高的精度是秒,也就是说,如果需要处理毫秒、微秒等大于秒分辨率的时间,则只能借助UInt类型实现。

DateTime

DateTime类型包含时、分、秒信息,精确到秒,支持使用字符串形式写入,例如: 2019-06-22 00:00:00

DateTime64

DateTime64可以记录亚秒,它在DateTime之上增加了精度的设置,例如: 2019-06-22 00:00:00.00

Date

Date类型不包含具体的时间信息,只精确到天,它同样也支持字符串形式写入,例如: 2019-06-22

4、复合类型

除了基础数据类型之外,ClickHouse还提供了数组、枚举等复合类型。

Array

在同一个数组内可以包含多种数据类型,例如数组[1,2.0]是可行的。但各类型之间必须兼容,例如数组[1,‘2’]则会报错。在定义表字段时,数组需要指定明确的元素类型,例如: CREATE TABLE Array_TEST ( c1 Array(String) ) engine = Memory

Enum

ClickHouse支持枚举类型,这是一种在定义常量时经常会使用的数据类型,ClickHouse提供了Enum8和Enum16两种枚举类型。 CREATE TABLE Enum_TEST ( c1 Enum8(‘ready’ = 1, ‘start’ = 2, ‘success’ = 3, ‘error’ = 4) ) ENGINE = Memory;

在定义枚举集合的时候,有几点需要注意。首先,Key和Value是不允许重复的,要保证唯一性。其次,Key和Value的值都不能为Null,但Key允许是空字符串。在写入枚举数据的时候,只会用到Key字符串部分,例如: INSERT INTO Enum_TEST VALUES(‘ready’);

数据在写入的过程中,会对照枚举集合项的内容逐一检查。如果Key字符串不在集合范围内则会抛出异常

5、特殊类型 Nullable

准确来说,Nullable并不能算是一种独立的数据类型,它更像是一种辅助的修饰符,需要与基础数据类型一起搭配使用。 CREATE TABLE Null_TEST ( c1 String, c2 Nullable(UInt8) ) ENGINE = Memory;

三、数据库

创建数据库: CREATE DATABASE IF NOT EXISTS db_name

查看数据库: SHOW DATABASES ┌─name───┐ │ DB_TEST │ │ default │ │ system │ └───────┘

切换数据库: use db_name

删除数据库: DROP DATABASE [IF EXISTS] db_name

如果你有什么意见或建议,请在评论区发表评论!如果能帮助到你学习新知识,欢迎点赞、收藏+关注

下集预告,Clickhouse的数据表相关知识,包括:数据表定义、临时表、分区表还有数据表的基本操作(修改、删除、清空等操作)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3